package com.ketangpai.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ketangpai.admin.entity.User;
import com.ketangpai.admin.entity.UserCourse;
import com.ketangpai.admin.entity.dto.CourseDTO;
import com.ketangpai.admin.entity.dto.TopCourseDTO;
import com.ketangpai.admin.entity.param.*;

import java.util.List;
import java.util.Map;

public interface UserCourseService extends IService<UserCourse> {
    //获取置顶课程
     List<TopCourseDTO> getTopCourse(User user);

    //根据用户身份获取所有课程
     List<UserCourse> getAll(User user);
    //

    UserCourse getList(GetUserCourseParam getUserCourseParam);
    //更改课程的置顶属性以及归档
    boolean changeIsTop(ChangeParam changeParam);

    //退课
    String dropCourse(DropCourseParam dropCourseParam);

    String joinCourse(JoinCourseParam joinCourseParam);

    //根据type值来获取课程
    Map<String,List<CourseDTO>> getCourseByType(CourseByTypeParam courseByTypeParam);

    Map<String,List<CourseDTO>> getPigeonholeCourse(CourseByTypeParam courseByTypeParam);

    List<User> getTeachers(Integer courseId);

    List<User> getStudents(Integer courseId);

    boolean addTeacher(AddMemberParam addMemberParam);
    //更改所有课程的归档属性
    boolean changeIsPigeonholeAll(Integer courseId);

    boolean deleteStudent(DeleteStudentParam deleteStudentParam);
}
